import java.util.Arrays;

//改变原有数组的值
public class Test {
    public static void main(String[] args) {
        int[] arr={1,2,3,4};
        System.out.println("原数组");
        System.out.println(Arrays.toString(arr));

        Mul(arr);
        System.out.println(Arrays.toString(arr));
    }
    //用for循环操作数组内部元素
    public static void Mul(int[] arry) {
        for (int i = 0; i < arry.length; i++) {
            arry[i]*=2;
        }
        System.out.println("用for循环操作数组内部元素");
    }
    //java中foreach一般只用来打印，而不用来操作数组元素
    public static void Mul_foreach(int[] arry) {
        for (int x:arry) {
            x*=2;
        }
        System.out.println("java中foreach一般只用来打印，而不用来操作数组元素");
    }
}

//用自定义方法求数组平均值
class Test2 {
    public static void main(String[] args) {
        int[] arr={1,2,3,4,5,6};
        double aver=avg(arr);
        System.out.println(aver);
    }
    public static double avg(int[] array) {
        int ret=0;
        for (int x:array) {
            ret+=x;
        }
        return ret*1.0/array.length;
    }
}

//奇数在前偶数在
class Test3 {
    public static void main(String[] args) {
        int[] arr={1,2,3,4,5,6};
        ordely_j_o(arr);
        System.out.println(Arrays.toString(arr));
    }
    public static void ordely_j_o(int[] array) {
        int i=0;
        int j=array.length-1;

        while(i<j){
            while(array[i]%2==1 && i<j){ //出循环后i找到偶数下标
                i++;
            }
            while(array[j]%2==0 && i<j){ //出循环后j找到奇数下标
                j--;
            }
            int tmp=array[i];  //找到后交换
            array[i]=array[j];
            array[j]=tmp;
            i++;
            j--;
        }
    }
}

//找两数之和等于目标的两数下标
class Test4 {
    public static void main(String[] args) {
        int[] nums={2,7,11,15};

        String ret=findsum(nums,9);
        System.out.println(ret);
    }

    public static String findsum(int[] array,int key) {
        String ret = "[";
        int i = 0;
        int j = array.length - 1;

        while ((array[i] + array[j]) > key) {
            j--;
        }
        while ((array[i] + array[j]) < key) {
            i--;
        }
        if ((array[i] + array[j]) == key) {
            ret += i+", ";
            ret += j;
            ret += "]";
            return ret;
        } else {
            return "null";
        }
    }
}

//统计数组中出现相同元素
class Test5 {
    public static void main(String[] args) {
        int[] arr={3,2,3};
        int ret=maxnum_find(arr);
        System.out.println(ret);
    }
    //出现多次的元素
    public static int maxnum_find(int[] array) {
        int[] cpy=new int[100];   //只能算元素是一百以内的数组，且不能统计负数
        Arrays.fill(cpy,0);

        int len=array.length;
        int i=0;
        //统计每个数数出现次数，把这个数作为下标，出现一次统计值就+1
        for (i = 0; i < len; i++) {
            cpy[array[i]]+=1;
        }
        //找次数最多
        int max=cpy[0];
        for(i=0;i<100;i++)
        {
            if(max<cpy[i]){
                max=cpy[i];
            }
        }
        //找次数最多的数
        for(i=0;i<100;i++)
        {
            if(cpy[i]==max){
                return i;
            }
        }
        return -1;
    }
    //找只出现一次的数
    public static int minnum_find(int[] array) {
        int[] cpy=new int[100];   //只能算元素是一百以内的数组
        Arrays.fill(cpy,0);

        int len=array.length;
        int i=0;
        //统计每个数数出现次数，把这个数作为下标，出现一次统计值就+1
        for (i = 0; i < len; i++) {
            cpy[array[i]]+=1;
        }
        //查找个数等于1的数
        for(i=0;i<100;i++)
        {
            if(cpy[i]==1){
                return i;
            }
        }
        return -1;
    }
}

//存在连续三个奇数的数组
class Test6 {
    public static void main(String[] args) {
        int[] arr = {1,2,34,3,4,5,7,23,12};

        int flag=0;
        int cnt=0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]%2==1){
                flag=1;
                cnt++;
            }
            if(flag==1 && arr[i]%2==0){
                flag=0;
            }
            if(cnt==3){
                System.out.println("true");
                break;
            }
        }
        if(cnt!=3){
            System.out.println("false");
        }
    }
}
